package util.ui;
/*
 * Created on Apr 25, 2005
 *
 * IndexedRecord -- a simple interface that allows the attributes of an
 * 		object to be accessed as strings using a 0-based index.  The interface
 * 		also defines what attributes are sortable, and provides comparison methods
 * 		for those attributes.
 */

/**
 * @author brian
 */
public interface ColumnwiseIndexer 
{
	// Returns the number of index-able attributes
	public int getNumFields ( );
	
	// Returns the name for the column at the 0-based index i
	public String getFieldNameByID ( int i );
	
	// Returns true if the input column is sort-able
	public boolean isFieldSortableByID ( int i );

	// Returns the indexed column (i) for the input object's row.
	// Should return null if i is invalid.
	public Object extractFieldByID ( Object obj, int i );
	
	public String [] getFieldNames ( ); // mdb added 7/11/08
	
	public boolean isFieldVisible( String strFieldName ); // mdb added 7/11/08

	public boolean isFieldRequired ( String strFieldName ); // mdb added 7/11/08
	
	public void setVisibleFieldNames ( Object[] fieldNames ); // mdb added 7/11/08
	
	public String [] getVisibleFieldNames ( ); // mdb added 9/18/08
}
